#include"dao_CxxSTL.h"
DaoMethod* Dao_Get_Object_Method( DaoCData *cd, DValue *obj, const char *name )
{
  DaoMethod *meth;
  if( cd == NULL ) return NULL;
  obj->v.object = DaoCData_GetObject( cd );
  if( obj->v.object == NULL ) return NULL;
  obj->t = DAO_OBJECT;
  meth = DaoObject_GetMethod( obj->v.object, name );
  if( meth == NULL ) return NULL;
  if( meth->type != DAO_METAROUTINE && meth->type != DAO_ROUTINE ) return NULL;
  return meth;
}
__true_type* Dao___true_type_New()
{
	__true_type *self = new __true_type();
	return self;
}
__false_type* Dao___false_type_New()
{
	__false_type *self = new __false_type();
	return self;
}
Dummy* Dao_Dummy_New()
{
	Dummy *self = new Dummy();
	return self;
}

DaoCxx_StringList* DAO_DLL_CXXSTL DaoCxx_StringList_New( const std::allocator<std::basic_string<char> >& __a )
{
	DaoCxx_StringList *self = new DaoCxx_StringList( __a );
	self->DaoInitWrapper();
	return self;
}

DaoCxx_StringList* DAO_DLL_CXXSTL DaoCxx_StringList_New( StringList::size_type __n, const std::basic_string<char>& __value, const std::allocator<std::basic_string<char> >& __a )
{
	DaoCxx_StringList *self = new DaoCxx_StringList( __n, __value, __a );
	self->DaoInitWrapper();
	return self;
}

DaoCxx_StringList* DAO_DLL_CXXSTL DaoCxx_StringList_New( StringList::size_type __n )
{
	DaoCxx_StringList *self = new DaoCxx_StringList( __n );
	self->DaoInitWrapper();
	return self;
}

DaoCxx_StringList* DAO_DLL_CXXSTL DaoCxx_StringList_New( const std::vector<std::basic_string<char>,std::allocator<std::basic_string<char> > >& __x )
{
	DaoCxx_StringList *self = new DaoCxx_StringList( __x );
	self->DaoInitWrapper();
	return self;
}
void DaoCxxVirt_StringList::DaoInitWrapper( StringList *s, DaoCData *d )
{
	self = s;
	cdata = d;


}
DaoCxx_StringList::~DaoCxx_StringList()
{
	if( cdata ){
		DaoCData_SetData( cdata, NULL );
		DaoCData_SetExtReference( cdata, 0 );
	} 
}
void DaoCxx_StringList::DaoInitWrapper()
{
	cdata = DaoCData_New( dao_StringList_Typer, this );
	DaoCxxVirt_StringList::DaoInitWrapper( this, cdata );

}

StringMap* DAO_DLL_CXXSTL Dao_StringMap_New(  )
{
	StringMap *object = new StringMap(  );

	return object;
}

StringMap* DAO_DLL_CXXSTL Dao_StringMap_New( const std::less<std::basic_string<char> >& __comp, const std::allocator<std::pair<const std::basic_string<char>,std::basic_string<char> > >& __a )
{
	StringMap *object = new StringMap( __comp, __a );

	return object;
}

StringMap* DAO_DLL_CXXSTL Dao_StringMap_New( const std::map<std::basic_string<char>,std::basic_string<char>,std::less<std::basic_string<char> >,std::allocator<std::pair<const std::basic_string<char>,std::basic_string<char> > > >& __x )
{
	StringMap *object = new StringMap( __x );

	return object;
}

std::string* DAO_DLL_CXXSTL Dao_std_0_string_New(  )
{
	std::string *object = new std::string(  );

	return object;
}

std::string* DAO_DLL_CXXSTL Dao_std_0_string_New( const std::allocator<char>& __a )
{
	std::string *object = new std::string( __a );

	return object;
}

std::string* DAO_DLL_CXXSTL Dao_std_0_string_New( const std::basic_string<char>& __str )
{
	std::string *object = new std::string( __str );

	return object;
}

std::string* DAO_DLL_CXXSTL Dao_std_0_string_New( const std::basic_string<char>& __str, std::string::size_type __pos, std::string::size_type __n )
{
	std::string *object = new std::string( __str, __pos, __n );

	return object;
}

std::string* DAO_DLL_CXXSTL Dao_std_0_string_New( const std::basic_string<char>& __str, std::string::size_type __pos, std::string::size_type __n, const std::allocator<char>& __a )
{
	std::string *object = new std::string( __str, __pos, __n, __a );

	return object;
}

std::string* DAO_DLL_CXXSTL Dao_std_0_string_New( const char* __s, std::string::size_type __n, const std::allocator<char>& __a )
{
	std::string *object = new std::string( __s, __n, __a );

	return object;
}

std::string* DAO_DLL_CXXSTL Dao_std_0_string_New( const char* __s, const std::allocator<char>& __a )
{
	std::string *object = new std::string( __s, __a );

	return object;
}

std::string* DAO_DLL_CXXSTL Dao_std_0_string_New( std::string::size_type __n, char __c, const std::allocator<char>& __a )
{
	std::string *object = new std::string( __n, __c, __a );

	return object;
}

class std::allocator<class std::basic_string<char> >* DAO_DLL_CXXSTL Dao_std_0_allocator_1_std_0_basic_string_1_char_2__10__2__New(  )
{
	class std::allocator<class std::basic_string<char> > *object = new class std::allocator<class std::basic_string<char> >(  );

	return object;
}

class std::allocator<class std::basic_string<char> >* DAO_DLL_CXXSTL Dao_std_0_allocator_1_std_0_basic_string_1_char_2__10__2__New( const std::allocator<std::basic_string<char> >& __a )
{
	class std::allocator<class std::basic_string<char> > *object = new class std::allocator<class std::basic_string<char> >( __a );

	return object;
}
std::less<std::basic_string<char> >* Dao_std_0_less_1_std_0_basic_string_1_char_2__10__2__New()
{
	std::less<std::basic_string<char> > *self = new std::less<std::basic_string<char> >();
	return self;
}

class std::allocator<struct std::pair<const class std::basic_string<char>, class std::basic_string<char> > >* DAO_DLL_CXXSTL Dao_std_0_allocator_1_std_0_pair_1_const_10_std_0_basic_string_1_char_2__3_std_0_basic_string_1_char_2__10__2__10__2__New(  )
{
	class std::allocator<struct std::pair<const class std::basic_string<char>, class std::basic_string<char> > > *object = new class std::allocator<struct std::pair<const class std::basic_string<char>, class std::basic_string<char> > >(  );

	return object;
}

class std::allocator<struct std::pair<const class std::basic_string<char>, class std::basic_string<char> > >* DAO_DLL_CXXSTL Dao_std_0_allocator_1_std_0_pair_1_const_10_std_0_basic_string_1_char_2__3_std_0_basic_string_1_char_2__10__2__10__2__New( const std::allocator<std::pair<const std::basic_string<char>,std::basic_string<char> > >& __a )
{
	class std::allocator<struct std::pair<const class std::basic_string<char>, class std::basic_string<char> > > *object = new class std::allocator<struct std::pair<const class std::basic_string<char>, class std::basic_string<char> > >( __a );

	return object;
}

std::allocator<char>* DAO_DLL_CXXSTL Dao_std_0_allocator_1_char_2__New(  )
{
	std::allocator<char> *object = new std::allocator<char>(  );

	return object;
}

std::allocator<char>* DAO_DLL_CXXSTL Dao_std_0_allocator_1_char_2__New( const std::allocator<char>& __a )
{
	std::allocator<char> *object = new std::allocator<char>( __a );

	return object;
}
